package com.toft.widgets.workflow.utils;

/**
 * 常量定义类
 * 
 * @author 邹庆林
 * @version 1.0
 */
public interface ConstantUtil {

	/**
	 * 自定义字符分配符 $
	 */
	String STR_SEPARATOR = "$";

	/**
	 * 业务类型(向流程变量中放入业务类型时使用) 在流程变量中使用
	 */
	String BUSINESS_TYPE = "businessType";

	/**
	 * 标识一个计数器(用于记录任务退回次数) 在流程变量中使用
	 */
	String BACK_COUNTER = "backCounter";

	/**
	 * 标识启动流程的用户 在流程变量中使用
	 */
	String SUBMIT_USER = "submituser";

	/**
	 * 动态任务标识，任务中taskType属性的值等于该值就为动态任务
	 */
	String DYNAMIC_TASK = "dynamicTask";

	/**
	 * 会签任务标识，任务中taskType属性的值等于该值就为会签任务
	 */
	String COUNTERSIGNATURE_TASK = "countersignatureTask";
	/**
	 * 会签父任务标识
	 */
	String COUNTERSIGNATURE_TASK_PARENT = "countersignatureTaskParent";

	/**
	 * 普通任务标识，任务中taskType属性的值等于该值就为普通任务
	 */
	String COMMON_TASK = "commonTask";
	/**
	 * 普通组任务标识
	 */
	String COMMON_GROUP_TASK = "commonGroupTask";

	/**
	 * Demo流程定义中要审核的金额(启动流程时要放入流程变量)
	 */
	String BUSINESS_MONEY = "money";

	/**
	 * 任务代理人(用于获取流程历史信息时作为标识使用，
	 * 见WorkflowQueryServiceImpl类中的getProcessHistoryInfoDup()方法)
	 */
	String TASK_AGENT = "agent";

	/**
	 * 任务处理人(用于获取流程历史信息时作为标识使用，
	 * 见WorkflowQueryServiceImpl类中的getProcessHistoryInfoDup()方法)
	 */
	String TASK_ASSIGNEE = "assignee";

	/**
	 * 任务处理时间(用于获取流程历史信息时作为标识使用，
	 * 见WorkflowQueryServiceImpl类中的getProcessHistoryInfoDup()方法)
	 */
	String TASK_END_TIME = "endTime";

	/**
	 * 任务处理时间，主要用于日期排序的条件
	 */
	String TASK_END_TIME_DUP = "endTimeDup";

	/**
	 * 任务处理意见类型(用于获取流程历史信息时作为标识使用，
	 * 见WorkflowQueryServiceImpl类中的getProcessHistoryInfoDup()方法)
	 */
	String TASK_COMMNET_TYPE = "commentType";

	/**
	 * 任务处理意见内容(用于获取流程历史信息时作为标识使用，
	 * 见WorkflowQueryServiceImpl类中的getProcessHistoryInfoDup()方法)
	 */
	String TASK_COMMENT_CONTENT = "commentContent";

	/**
	 * 任务状态(用于获取流程历史信息时作为标识使用，
	 * 见WorkflowQueryServiceImpl类中的getProcessHistoryInfoDup()方法)
	 */
	String TASK_STATE = "taskState";

	/**
	 * 任务回退时要放入流程变量中的退回标识 用于在提交节点处理类中获取该标识， 获取到该标识即说明是退回到提交节点
	 */
	String REJECT_TASK_TO_SUBMIT = "submitReject";

	/**
	 * 提交节点标识
	 */
	String SUBMIT_ACTIVITY = "submitActivity";

	/**
	 * 任务意见类型：拒绝
	 */
	String TASK_COMMNET_TYPE_REFUSE = "拒绝";

	/**
	 * 拒绝到提交节点的标识 该标识是设置到Task的submitActivity属性上
	 */
	String REFUSE_TO_SUBMITACTIVITY = "refuseToSubmitActivity";

	/**
	 * 任务意见类型：同意
	 */
	String TASK_COMMNET_TYPE_ACCEPT = "同意";

	/**
	 * 任务意见类型：弃权
	 */
	String TASK_COMMNET_TYPE_GIVEUP = "弃权";

	/**
	 * 任务意见类型：驳回
	 */
	String TASK_COMMNET_TYPE_REJECT = "驳回";

	/**
	 * 业务单据编号
	 */
	String BUSINESS_SN = "businessSN";

	/**
	 * 业务单据标识
	 */
	String BUSINESS_RECORE_ID = "businessRecordId";

	/**
	 * 业务连接地址
	 */
	String BUSINESS_URL = "businessUrl";

	/**
	 * 节点类型：任务
	 */
	String TASK_TYPE = "task";

	/**
	 * 节点类型：子流程
	 */
	String SUB_PROCESS = "sub-process";

	/**
	 * 机构标识
	 */
	String AGENCY_ID = "agencyId";

	/**
	 * 部门
	 */
	String DEPARTMENT_ID = "departmentId";

	/**
	 * 业务名称
	 */
	String BUSINESS_NAME = "businessName";

	/**
	 * 单据提交人名称
	 */
	String SUBMIT_USER_NAME = "submitUserName";

	/**
	 * 任务的名称
	 */
	String TASK_NAME = "taskName";

	String SUBMIT_NAME = "提交" + STR_SEPARATOR;

	String USER_CODE = "userCode";
	String SELECT_USER_CODE = "selectedUser";
	String LOGIN_USER_CODE = "loginUserCode";
	String GROUPID = "groupId";
	String CONN = "conn";
	/**
	 * 字符串类型(获取流程变量时使用)
	 */
	String J_STRING = "String";

	/**
	 * 整型(获取流程变量时使用)
	 */
	String J_INTEGER = "int";

	/**
	 * 长整型(获取流程变量时使用)
	 */
	String J_LONG = "long";

	/**
	 * 单精度浮点(获取流程变量时使用)
	 */
	String J_FLOAT = "float";

	/**
	 * 双精度浮点(获取流程变量时使用)
	 */
	String J_DOUBLE = "double";

	/**
	 * 日期型(获取流程变量时使用)
	 */
	String J_DATE = "Date";

	/**
	 * 布尔型(获取流程变量时使用)
	 */
	String J_BOOLEAN = "boolean";

	/**
	 * 工作流属性文件名称
	 */
	String PROPERTIES_FILE_NAME = "workflow.properties";

	/**
	 * 工作流部署Service 用于workflow.properties属性文件中的key
	 */
	String WORKFLOW_DEPLOY_SERVICE = "workflow.deploy.service";

	/**
	 * 工作流动态任务Service 用于workflow.properties属性文件中的key
	 */
	String WORKFLOW_DYNAMIC_TASK_SERVICE = "workflow.dynamic.task.service";

	/**
	 * 工作流规则Service 用于workflow.properties属性文件中的key
	 */
	String WORKFLOW_REGULATION_SERVICE = "workflow.regulation.service";

	/**
	 * 工作流消息Service 用于workflow.properties属性文件中的key
	 */
	String WORKFLOW_MESSAGE_SERVICE = "workflow.message.service";

	/**
	 * 工作流查询Service 用于workflow.properties属性文件中的key
	 */
	String WORKFLOW_QUERY_SERVICE = "workflow.query.service";

	/**
	 * 工作流操作Service 用于workflow.properties属性文件中的key
	 */
	String WORKFLOW_OPERATTION_SERVICE = "workflow.operation.service";

	/**
	 * 工作流授权Service 用于workflow.properties属性文件中的key
	 */
	String WORKFLOW_AUTH_SERVICE = "workflow.auth.service";

	/**
	 * 工作流挂接Service 用于workflow.properties属性文件中的key
	 */
	String WORKFLOW_ARTICULATED_SERVICE = "workflow.articulated.service";

	/**
	 * 工作流辅助查询Service
	 */
	String WORKFLOW_ASSISTANCE_QUERY_SERVICE = "orkflow.assistance.query.service";

	/**
	 * 工作流审批类型，审批通过
	 */
	String APPROVE_OPERATION_PASS = "true";

	/**
	 * 工作流审批类型，审批拒绝
	 */
	String APPROVE_OPERATION_REFUSE = "false";

	/**
	 * 节点类型 单独记录审批信息时使用
	 */
	String ACTIVITY_TYPE = "task";

	/**
	 * 节点类型:非task 单独记录审批信息时使用
	 */
	String ACTIVITY_TYPE_NO_TASK = "nottask";

	/**
	 * 提交申请
	 */
	String SUBMIT_APPLY = "提交申请";

	/**
	 * 提交操作标识
	 */
	String SUBMIT_OPERATION = "提交";
	/**
	 * 拒绝后再次提交
	 */
	String SUBMIT_SECOND = "再次提交";

	/** when the full process instance has come to an end */
	String STATE_ENDED = "ended";

	/** when the full process instance is still active */
	String STATE_ACTIVE = "active";

	/**
	 * 流程变量的key值，即流程中决策节点要使用的变量的值
	 */
	String PROCESS_VARIABLE_AMOUNT = "Amount";

	/**
	 * 任务标识常量
	 */
	String TASK_ID = "taskId";
	/**
	 * 会签投票数
	 */
	String COUNTERSIGN_ALL_NUM = "allVotes";
	/**
	 * 会签通过数
	 */
	String COUNTERSIGN_PASS_NUM = "passVotes";
	/**
	 * 会签结果
	 */
	String COUNTERSIGN_RESULT = "counterSignResult";
	String WORKFLOW_OBJECT = "workflowObject";


	String TASKTYPE = "TaskType";
	String TASKTYPE_COMMONTASK = "CommonTask";
	String TASKTYPE_SIGNATURETASK = "SignatureTask";
}
